package video

import db "tacitus/library/database"

// 视频分类
type Category struct {
	ID       int64  `json:"id" xorm:"pk autoincr"`
	ParentID int64  `json:"parent_id"`
	Type     string `json:"type"` // 分类类型，一般与分类内的内容类型一样，也可以做成混合类型
	Name     string `json:"name"`
	Remarks  string `json:"remarks"` // 注释
	Weight   int    `json:"weight"`  // 权重
	Path     string `json:"path"`    // 分类的上级路径，以`/`作为开头、结尾和中间的分隔
	CreateTime  int64  `json:"create_time"`
}

func (Category) TableName() string {
	return db.TablePrefix + "video_cate"
}

// 视频分类和视频、视频包之间的关联
type Association struct {
	ID        int64  `json:"id" xorm:"pk autoincr"`
	CateID    int64  `json:"cate_id"`
	AssocType string `json:"assoc_type"`
	AssocID   int64  `json:"assoc_id"`
	Weight   int    `json:"weight"`  // 权重
	CreateTime  int64  `json:"create_time"`
}

func (Association) TableName() string {
	return db.TablePrefix + "video_cate_assoc"
}

// 链接
// 将分类挂载到另一个分类下
type Link struct {
	ID       int64 `json:"id" xorm:"pk autoincr"`
	ParentID int64 `json:"parent_id"` // 要挂载的父级
	CateID   int64 `json:"cate_id"`   // 要挂载的分类
	Weight   int    `json:"weight"`  // 权重
	CreateTime  int64  `json:"create_time"`
}

func (Link) TableName() string {
	return db.TablePrefix + "video_cate_link"
}
